#ifdef HERZELEID_DESKTOP
 #if _MSC_VER
  #pragma once
 #endif

 #ifndef __HERZELEID_IACTIVATEDEVENTARGS_INCLUDED__
  #define __HERZELEID_IACTIVATEDEVENTARGS_INCLUDED__
  #include "HerzeleidApplicationModelActivation.hxx"
  #include "HerzeleidApplicationExecutionState.hxx"
  #include "HerzeleidActivationKind.hxx"
  #include "HerzeleidEventArgsBase.hxx"
  #include "HerzeleidSplashScreen.hxx"

// Provides common properties for all activation types (currently Lauch is the only supported one).
HerzeleidAppModelActivationNamespaceBegin class IActivatedEventArgs : 
	public HerzeleidUICoreNamespaceImpl::EventArgsBase
{
	// Members

	Activation::SplashScreen m_SplashScreen;																// Stores the splash screen object that provides information about the transition from the splash screen to the activated app.
	Activation::ActivationKind m_eKind;																		// Stores the reason that this app is being activated.
	Activation::ApplicationExecutionState m_ePrevState;														// Stores the execution state of the app before this activation.

public:

	IActivatedEventArgs();

	// Properties

	DeclGetPropOnly( Activation::ActivationKindConst, Kind );												// Gets the reason that this app is being activated.
	DeclGetPropOnly( Activation::SplashScreenPtr, SplashScreen );											// Gets the splash screen object that provides information about the transition from the splash screen to the activated app.
	DeclGetProp( Activation::ApplicationExecutionStateConst, PreviousExecutionState );						// Gets the execution state of the app before this activation.
	DeclConstTypedGetterFor( Activation::ActivationKindConst, Kind );										// Gets the splash screen object that provides information about the transition from the splash screen to the activated app.
	DeclConstTypedGetterFor( Activation::SplashScreenConstPtrConst, SplashScreen );							// Gets the splash screen object that provides information about the transition from the splash screen to the activated app.
	DeclConstTypedGetterFor( Activation::ApplicationExecutionStateConst, PreviousExecutionState );			// Gets the splash screen object that provides information about the transition from the splash screen to the activated app.

} HerzeleidAppModelActivationNamespaceEnd; 

 #endif // !HERZELEID_IACTIVATEDEVENTARGS_INCLUDED__
#endif // !HERZELEID_DESKTOP
